diff options
author | AlisaLinUwU <alisalinuwu@gmail.com> | 2025-01-26 11:35:35 +0500 |
---|---|---|
committer | AlisaLinUwU <alisalinuwu@gmail.com> | 2025-01-26 11:35:35 +0500 |
commit | 9c555bca7ba5a4e5396245b2086df89ded7e0c8c (patch) | |
tree | 011f1ded4ee38e3cae4b24b6894ae5fba8dcaaf3 |
Initializemain
34 files changed, 787 insertions, 0 deletions
diff --git a/Kahoot GUI.iml b/Kahoot GUI.iml new file mode 100644 index 0000000..ffb3fff --- /dev/null +++ b/Kahoot GUI.iml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_18"> + <output url="file://$MODULE_DIR$/target/classes" /> + <output-test url="file://$MODULE_DIR$/target/test-classes" /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> + <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> + <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> + <excludeFolder url="file://$MODULE_DIR$/target" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="Maven: org.openjfx:javafx-base:win:18.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.openjfx:javafx-base:linux:18.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:win:18.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:linux:18.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.openjfx:javafx-controls:18.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.openjfx:javafx-controls:win:18.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.openjfx:javafx-controls:linux:18.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:18.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:win:18.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:linux:18.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.openjfx:javafx-base:18.0.1" level="project" /> + </component> +</module>
\ No newline at end of file diff --git a/out/artifacts/Kahoot_GUI_Linux_jar/Kahoot GUI.jar b/out/artifacts/Kahoot_GUI_Linux_jar/Kahoot GUI.jar Binary files differnew file mode 100644 index 0000000..e7715aa --- /dev/null +++ b/out/artifacts/Kahoot_GUI_Linux_jar/Kahoot GUI.jar diff --git a/out/artifacts/Kahoot_GUI_Windows_jar/Kahoot GUI.jar b/out/artifacts/Kahoot_GUI_Windows_jar/Kahoot GUI.jar Binary files differnew file mode 100644 index 0000000..d990423 --- /dev/null +++ b/out/artifacts/Kahoot_GUI_Windows_jar/Kahoot GUI.jar diff --git a/out/classes/sample/Controller.class b/out/classes/sample/Controller.class Binary files differnew file mode 100644 index 0000000..cef7944 --- /dev/null +++ b/out/classes/sample/Controller.class diff --git a/out/classes/sample/Main.class b/out/classes/sample/Main.class Binary files differnew file mode 100644 index 0000000..cab1eaa --- /dev/null +++ b/out/classes/sample/Main.class diff --git a/out/classes/sample/Questions.class b/out/classes/sample/Questions.class Binary files differnew file mode 100644 index 0000000..48f91d7 --- /dev/null +++ b/out/classes/sample/Questions.class diff --git a/out/classes/sample/images/liist.png b/out/classes/sample/images/liist.png Binary files differnew file mode 100644 index 0000000..abdde73 --- /dev/null +++ b/out/classes/sample/images/liist.png diff --git a/out/classes/sample/images/logo.png b/out/classes/sample/images/logo.png Binary files differnew file mode 100644 index 0000000..ddef2cf --- /dev/null +++ b/out/classes/sample/images/logo.png diff --git a/out/classes/sample/images/search.png b/out/classes/sample/images/search.png Binary files differnew file mode 100644 index 0000000..00400c6 --- /dev/null +++ b/out/classes/sample/images/search.png diff --git a/out/classes/sample/sample.fxml b/out/classes/sample/sample.fxml new file mode 100644 index 0000000..a65c9f1 --- /dev/null +++ b/out/classes/sample/sample.fxml @@ -0,0 +1,164 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.geometry.Insets?> +<?import javafx.scene.Cursor?> +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.RadioButton?> +<?import javafx.scene.control.Separator?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.control.ToggleGroup?> +<?import javafx.scene.effect.DropShadow?> +<?import javafx.scene.image.Image?> +<?import javafx.scene.image.ImageView?> +<?import javafx.scene.layout.AnchorPane?> +<?import javafx.scene.text.Font?> +<?import javafx.scene.text.Text?> + + +<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="460.0" prefWidth="747.0" style="-fx-background-color: #F4F7FB;" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller"> + <children> + <AnchorPane layoutX="200.0" prefHeight="68.0" prefWidth="548.0" style="-fx-background-color: #fff;"> + <effect> + <DropShadow color="#0000001f" /> + </effect> + <children> + <ImageView fitHeight="53.0" fitWidth="43.0" layoutX="491.0" layoutY="13.0" pickOnBounds="true" preserveRatio="true" rotate="53.7"> + <image> + <Image url="@images/search.png" /> + </image> + </ImageView> + <TextField focusTraversable="false" layoutX="327.0" layoutY="20.0" prefHeight="29.0" prefWidth="155.0" promptText="Поиск в программе" style="-fx-background-color: #fff; -fx-border-color: #fff;"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </TextField> + <ImageView fitHeight="69.0" fitWidth="60.0" layoutX="24.0" layoutY="5.0" pickOnBounds="true" preserveRatio="true"> + <image> + <Image url="@images/liist.png" /> + </image> + </ImageView> + </children> + </AnchorPane> + <AnchorPane prefHeight="460.0" prefWidth="200.0" style="-fx-background-color: #fff;"> + <effect> + <DropShadow color="#00000040" /> + </effect> + <children> + <Button layoutX="14.0" layoutY="130.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по Java"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <ImageView fitHeight="97.0" fitWidth="82.0" layoutX="14.0" layoutY="15.0" pickOnBounds="true" preserveRatio="true"> + <image> + <Image url="@images/logo.png" /> + </image> + </ImageView> + <Text fill="#b2b2b2" layoutX="99.0" layoutY="75.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Программа с тестами" textAlignment="CENTER" wrappingWidth="82.00000447034836"> + <font> + <Font name="Montserrat Bold" size="11.0" /> + </font> + </Text> + <Text fill="#3c3c3c" layoutX="107.0" layoutY="52.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Testify"> + <font> + <Font name="Panton Black Caps" size="17.0" /> + </font> + </Text> + <Separator focusTraversable="false" layoutX="14.0" layoutY="110.0" prefHeight="3.0" prefWidth="175.0" style="-fx-background-color: #ccc; -fx-border-style: solid; -fx-border-color: #333;"> + <opaqueInsets> + <Insets /> + </opaqueInsets> + </Separator> + <Button layoutX="14.0" layoutY="169.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по C#"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="209.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по C++"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="252.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по Python"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="294.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по JS"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="410.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #f7746a; -fx-border-color: #f7746a; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Закрыть программу" textFill="WHITE"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Separator focusTraversable="false" layoutX="14.0" layoutY="396.0" prefHeight="3.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-style: solid; -fx-border-color: #ccc; -fx-border-width: 0;"> + <opaqueInsets> + <Insets /> + </opaqueInsets> + </Separator> + </children> + </AnchorPane> + <Text fill="#434343" layoutX="313.0" layoutY="116.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Тесты по языку Java"> + <font> + <Font name="Montserrat Bold" size="29.0" /> + </font> + </Text> + <RadioButton fx:id="radio_btn_1" layoutX="237.0" layoutY="198.0" mnemonicParsing="false" text="Console.Write()" textFill="#5e5e5e"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <toggleGroup> + <ToggleGroup fx:id="answers" /> + </toggleGroup> + </RadioButton> + <Text fx:id="question_text" fill="#727272" layoutX="237.0" layoutY="159.0" strokeType="OUTSIDE" strokeWidth="0.0" text="В каком из вариантов представлен корректный формат вывода информации на экран?" wrappingWidth="494.8199462890625"> + <font> + <Font name="Montserrat Regular" size="14.0" /> + </font> + </Text> + <RadioButton fx:id="radio_btn_2" layoutX="237.0" layoutY="230.0" mnemonicParsing="false" text="System.out.println()" textFill="#5e5e5e" toggleGroup="$answers"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </RadioButton> + <RadioButton fx:id="radio_btn_3" layoutX="237.0" layoutY="263.0" mnemonicParsing="false" text="console.log()" textFill="#5e5e5e" toggleGroup="$answers"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </RadioButton> + <RadioButton fx:id="radio_btn_4" layoutX="237.0" layoutY="299.0" mnemonicParsing="false" text="print()" textFill="#5e5e5e" toggleGroup="$answers"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </RadioButton> + <Button fx:id="answerBtn" layoutX="387.0" layoutY="384.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #f7746a; -fx-border-color: #f7746a; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Ответить" textFill="WHITE"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + </children> +</AnchorPane> diff --git a/out/classes/sample/styles/main.css b/out/classes/sample/styles/main.css new file mode 100644 index 0000000..90a7c9f --- /dev/null +++ b/out/classes/sample/styles/main.css @@ -0,0 +1,10 @@ +.button:hover { + -fx-background-color: #383838!important; + -fx-border-color: #383838!important; + -fx-text-fill: #fff!important; +} + +.button:pressed { + -fx-scale-y: 0.95; + -fx-scale-x: 0.95; +}
\ No newline at end of file @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>groupId</groupId> + <artifactId>som</artifactId> + <version>1.0-SNAPSHOT</version> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <junit.version>5.8.2</junit.version> + </properties> + + <dependencies> + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-base</artifactId> + <version>18.0.1</version> + <classifier>win</classifier> + </dependency> + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-fxml</artifactId> + <version>18.0.1</version> + <classifier>win</classifier> + </dependency> + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-controls</artifactId> + <version>18.0.1</version> + <classifier>win</classifier> + </dependency> + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-graphics</artifactId> + <version>18.0.1</version> + <classifier>win</classifier> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.8.1</version> + <configuration> + <source>18</source> + <target>18</target> + </configuration> + </plugin> + <plugin> + <groupId>org.openjfx</groupId> + <artifactId>javafx-maven-plugin</artifactId> + <version>0.0.8</version> + <executions> + <execution> + <!-- Default configuration for running with: mvn clean javafx:run --> + <id>default-cli</id> + <configuration> + <mainClass>kahootgui.Main</mainClass> + <launcher>app</launcher> + <jlinkZipName>app</jlinkZipName> + <jlinkImageName>app</jlinkImageName> + <noManPages>true</noManPages> + <stripDebug>true</stripDebug> + <noHeaderFiles>true</noHeaderFiles> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project>
\ No newline at end of file diff --git a/src/main/java/.DS_Store b/src/main/java/.DS_Store Binary files differnew file mode 100644 index 0000000..5008ddf --- /dev/null +++ b/src/main/java/.DS_Store diff --git a/src/main/java/kahootgui/.DS_Store b/src/main/java/kahootgui/.DS_Store Binary files differnew file mode 100644 index 0000000..09747aa --- /dev/null +++ b/src/main/java/kahootgui/.DS_Store diff --git a/src/main/java/kahootgui/App.java b/src/main/java/kahootgui/App.java new file mode 100644 index 0000000..5dae92b --- /dev/null +++ b/src/main/java/kahootgui/App.java @@ -0,0 +1,25 @@ +package kahootgui; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; + +import java.util.Objects; + +public class App extends Application { + + @Override + public void start(Stage primaryStage) throws Exception { + Parent root = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("main.fxml"))); + primaryStage.setTitle("Тесты по языка программирования"); + primaryStage.setScene(new Scene(root, 747, 460)); + primaryStage.show(); + } + + public static void main(String[] args) { + launch(args); + } + +} diff --git a/src/main/java/kahootgui/Controller.java b/src/main/java/kahootgui/Controller.java new file mode 100644 index 0000000..476f9f1 --- /dev/null +++ b/src/main/java/kahootgui/Controller.java @@ -0,0 +1,97 @@ +package kahootgui; + +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.control.RadioButton; +import javafx.scene.control.ToggleGroup; +import javafx.scene.text.Text; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class Controller { + + @FXML + private ToggleGroup answers; + + @FXML + private Text question_text; + + @FXML + private RadioButton radio_btn_1; + + @FXML + private RadioButton radio_btn_2; + + @FXML + private RadioButton radio_btn_3; + + @FXML + private RadioButton radio_btn_4; + + @FXML + private Button answerBtn; + + private final Questions[] questions = new Questions[] { + new Questions("В каком из вариантов представлен корректный формат вывода информации на экран?", new String[] {"Console.Write()", "console.log()", "print()", "System.out.println()"}), + new Questions("Какой тип данных отвечает за целые числа?", new String[] {"String", "Float", "Boolean", "Integer"}), + new Questions("Где правильно присвоено новое значение к многомерному массиву?", new String[] {"a(0)(0) = 1;", "a[0 0] = 1;", "a{0}{0} = 1;", "a[0][0] = 1;"}), + new Questions("Какой метод позволяет запустить программу на Java?", new String[] {"Основного метода нет", "С класса, что был написан первым и с методов что есть внутри него", "Любой, его можно задавать в настройках проекта", "С метода main в любом из классов"}), + new Questions("Каждый файл должен называется...", new String[] {"по имени первой библиотеки в нём", "по имени названия пакета", "как вам захочется", "по имени класса в нём"}), + new Questions("Сколько параметров может принимать функция?", new String[] {"5", "10", "20", "неограниченное количество"}) + }; + + private int nowQuestion = 0, correctAnswers; + private String nowCorrectAnswer; + + @FXML + public void initialize() { + nowCorrectAnswer = questions[nowQuestion].correctAnswer(); + + answerBtn.setOnAction(e -> { + RadioButton selectedRadioButton = (RadioButton) answers.getSelectedToggle(); + if(selectedRadioButton != null) { + String toogleGroupValue = selectedRadioButton.getText(); + + if(toogleGroupValue.equals(nowCorrectAnswer)) { + System.out.println("Верный ответ"); + correctAnswers++; + } else { + System.out.println("Не верный ответ"); + } + + // Это был последний вопрос + if(nowQuestion + 1 == questions.length) { + radio_btn_1.setVisible(false); + radio_btn_2.setVisible(false); + radio_btn_3.setVisible(false); + radio_btn_4.setVisible(false); + answerBtn.setVisible(false); + + question_text.setText("Вы ответили корректно на " + correctAnswers + " из " + questions.length + " вопросов!"); + } else { + nowQuestion++; + nowCorrectAnswer = questions[nowQuestion].correctAnswer(); + + question_text.setText(questions[nowQuestion].getQuestion()); + String[] answers = questions[nowQuestion].getAnswers(); + + + List<String> intList = Arrays.asList(answers); + + Collections.shuffle(intList); + + radio_btn_1.setText(intList.get(0)); + radio_btn_2.setText(intList.get(1)); + radio_btn_3.setText(intList.get(2)); + radio_btn_4.setText(intList.get(3)); + + selectedRadioButton.setSelected(false); + } + + } + }); + } + +} diff --git a/src/main/java/kahootgui/Main.java b/src/main/java/kahootgui/Main.java new file mode 100644 index 0000000..bbcccb1 --- /dev/null +++ b/src/main/java/kahootgui/Main.java @@ -0,0 +1,9 @@ +package kahootgui; + +public class Main { + + public static void main(String[] args) { + App.main(args); + } + +} diff --git a/src/main/java/kahootgui/Questions.java b/src/main/java/kahootgui/Questions.java new file mode 100644 index 0000000..44bbe34 --- /dev/null +++ b/src/main/java/kahootgui/Questions.java @@ -0,0 +1,25 @@ +package kahootgui; + +public class Questions { + + private String question; + private String[] answers; + + public Questions(String question, String[] answers) { + this.question = question; + this.answers = answers; + } + + public String correctAnswer() { + return this.answers[answers.length - 1]; + } + + public String getQuestion() { + return question; + } + + public String[] getAnswers() { + return answers; + } + +} diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF new file mode 100644 index 0000000..69fbd7c --- /dev/null +++ b/src/main/resources/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0
+Main-Class: kahootgui.Main
+
diff --git a/src/main/resources/kahootgui/images/list.png b/src/main/resources/kahootgui/images/list.png Binary files differnew file mode 100644 index 0000000..abdde73 --- /dev/null +++ b/src/main/resources/kahootgui/images/list.png diff --git a/src/main/resources/kahootgui/images/logo.png b/src/main/resources/kahootgui/images/logo.png Binary files differnew file mode 100644 index 0000000..ddef2cf --- /dev/null +++ b/src/main/resources/kahootgui/images/logo.png diff --git a/src/main/resources/kahootgui/images/search.png b/src/main/resources/kahootgui/images/search.png Binary files differnew file mode 100644 index 0000000..00400c6 --- /dev/null +++ b/src/main/resources/kahootgui/images/search.png diff --git a/src/main/resources/kahootgui/main.fxml b/src/main/resources/kahootgui/main.fxml new file mode 100644 index 0000000..1bae894 --- /dev/null +++ b/src/main/resources/kahootgui/main.fxml @@ -0,0 +1,164 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.geometry.Insets?> +<?import javafx.scene.Cursor?> +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.RadioButton?> +<?import javafx.scene.control.Separator?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.control.ToggleGroup?> +<?import javafx.scene.effect.DropShadow?> +<?import javafx.scene.image.Image?> +<?import javafx.scene.image.ImageView?> +<?import javafx.scene.layout.AnchorPane?> +<?import javafx.scene.text.Font?> +<?import javafx.scene.text.Text?> + + +<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="460.0" prefWidth="747.0" style="-fx-background-color: #F4F7FB;" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="kahootgui.Controller"> + <children> + <AnchorPane layoutX="200.0" prefHeight="68.0" prefWidth="548.0" style="-fx-background-color: #fff;"> + <effect> + <DropShadow color="#0000001f" /> + </effect> + <children> + <ImageView fitHeight="53.0" fitWidth="43.0" layoutX="491.0" layoutY="13.0" pickOnBounds="true" preserveRatio="true" rotate="53.7"> + <image> + <Image url="@images/search.png" /> + </image> + </ImageView> + <TextField focusTraversable="false" layoutX="327.0" layoutY="20.0" prefHeight="29.0" prefWidth="155.0" promptText="Поиск в программе" style="-fx-background-color: #fff; -fx-border-color: #fff;"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </TextField> + <ImageView fitHeight="69.0" fitWidth="60.0" layoutX="24.0" layoutY="5.0" pickOnBounds="true" preserveRatio="true"> + <image> + <Image url="@images/list.png" /> + </image> + </ImageView> + </children> + </AnchorPane> + <AnchorPane prefHeight="460.0" prefWidth="200.0" style="-fx-background-color: #fff;"> + <effect> + <DropShadow color="#00000040" /> + </effect> + <children> + <Button layoutX="14.0" layoutY="130.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по Java"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <ImageView fitHeight="97.0" fitWidth="82.0" layoutX="14.0" layoutY="15.0" pickOnBounds="true" preserveRatio="true"> + <image> + <Image url="@images/logo.png" /> + </image> + </ImageView> + <Text fill="#b2b2b2" layoutX="99.0" layoutY="75.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Программа с тестами" textAlignment="CENTER" wrappingWidth="82.00000447034836"> + <font> + <Font name="Montserrat Bold" size="11.0" /> + </font> + </Text> + <Text fill="#3c3c3c" layoutX="107.0" layoutY="52.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Testify"> + <font> + <Font name="Panton Black Caps" size="17.0" /> + </font> + </Text> + <Separator focusTraversable="false" layoutX="14.0" layoutY="110.0" prefHeight="3.0" prefWidth="175.0" style="-fx-background-color: #ccc; -fx-border-style: solid; -fx-border-color: #333;"> + <opaqueInsets> + <Insets /> + </opaqueInsets> + </Separator> + <Button layoutX="14.0" layoutY="169.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по C#"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="209.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по C++"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="252.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по Python"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="294.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по JS"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="410.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #f7746a; -fx-border-color: #f7746a; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Закрыть программу" textFill="WHITE"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Separator focusTraversable="false" layoutX="14.0" layoutY="396.0" prefHeight="3.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-style: solid; -fx-border-color: #ccc; -fx-border-width: 0;"> + <opaqueInsets> + <Insets /> + </opaqueInsets> + </Separator> + </children> + </AnchorPane> + <Text fill="#434343" layoutX="313.0" layoutY="116.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Тесты по языку Java"> + <font> + <Font name="Montserrat Bold" size="29.0" /> + </font> + </Text> + <RadioButton fx:id="radio_btn_1" layoutX="237.0" layoutY="198.0" mnemonicParsing="false" text="Console.Write()" textFill="#5e5e5e"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <toggleGroup> + <ToggleGroup fx:id="answers" /> + </toggleGroup> + </RadioButton> + <Text fx:id="question_text" fill="#727272" layoutX="237.0" layoutY="159.0" strokeType="OUTSIDE" strokeWidth="0.0" text="В каком из вариантов представлен корректный формат вывода информации на экран?" wrappingWidth="494.8199462890625"> + <font> + <Font name="Montserrat Regular" size="14.0" /> + </font> + </Text> + <RadioButton fx:id="radio_btn_2" layoutX="237.0" layoutY="230.0" mnemonicParsing="false" text="System.out.println()" textFill="#5e5e5e" toggleGroup="$answers"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </RadioButton> + <RadioButton fx:id="radio_btn_3" layoutX="237.0" layoutY="263.0" mnemonicParsing="false" text="console.log()" textFill="#5e5e5e" toggleGroup="$answers"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </RadioButton> + <RadioButton fx:id="radio_btn_4" layoutX="237.0" layoutY="299.0" mnemonicParsing="false" text="print()" textFill="#5e5e5e" toggleGroup="$answers"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </RadioButton> + <Button fx:id="answerBtn" layoutX="387.0" layoutY="384.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #f7746a; -fx-border-color: #f7746a; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Ответить" textFill="WHITE"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + </children> +</AnchorPane> diff --git a/src/main/resources/kahootgui/styles/main.css b/src/main/resources/kahootgui/styles/main.css new file mode 100644 index 0000000..90a7c9f --- /dev/null +++ b/src/main/resources/kahootgui/styles/main.css @@ -0,0 +1,10 @@ +.button:hover { + -fx-background-color: #383838!important; + -fx-border-color: #383838!important; + -fx-text-fill: #fff!important; +} + +.button:pressed { + -fx-scale-y: 0.95; + -fx-scale-x: 0.95; +}
\ No newline at end of file diff --git a/target/classes/META-INF/MANIFEST.MF b/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..69fbd7c --- /dev/null +++ b/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0
+Main-Class: kahootgui.Main
+
diff --git a/target/classes/kahootgui/App.class b/target/classes/kahootgui/App.class Binary files differnew file mode 100644 index 0000000..fb35fee --- /dev/null +++ b/target/classes/kahootgui/App.class diff --git a/target/classes/kahootgui/Controller.class b/target/classes/kahootgui/Controller.class Binary files differnew file mode 100644 index 0000000..8c7daa0 --- /dev/null +++ b/target/classes/kahootgui/Controller.class diff --git a/target/classes/kahootgui/Main.class b/target/classes/kahootgui/Main.class Binary files differnew file mode 100644 index 0000000..fe9e963 --- /dev/null +++ b/target/classes/kahootgui/Main.class diff --git a/target/classes/kahootgui/Questions.class b/target/classes/kahootgui/Questions.class Binary files differnew file mode 100644 index 0000000..4661a44 --- /dev/null +++ b/target/classes/kahootgui/Questions.class diff --git a/target/classes/kahootgui/images/list.png b/target/classes/kahootgui/images/list.png Binary files differnew file mode 100644 index 0000000..abdde73 --- /dev/null +++ b/target/classes/kahootgui/images/list.png diff --git a/target/classes/kahootgui/images/logo.png b/target/classes/kahootgui/images/logo.png Binary files differnew file mode 100644 index 0000000..ddef2cf --- /dev/null +++ b/target/classes/kahootgui/images/logo.png diff --git a/target/classes/kahootgui/images/search.png b/target/classes/kahootgui/images/search.png Binary files differnew file mode 100644 index 0000000..00400c6 --- /dev/null +++ b/target/classes/kahootgui/images/search.png diff --git a/target/classes/kahootgui/main.fxml b/target/classes/kahootgui/main.fxml new file mode 100644 index 0000000..1bae894 --- /dev/null +++ b/target/classes/kahootgui/main.fxml @@ -0,0 +1,164 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.geometry.Insets?> +<?import javafx.scene.Cursor?> +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.RadioButton?> +<?import javafx.scene.control.Separator?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.control.ToggleGroup?> +<?import javafx.scene.effect.DropShadow?> +<?import javafx.scene.image.Image?> +<?import javafx.scene.image.ImageView?> +<?import javafx.scene.layout.AnchorPane?> +<?import javafx.scene.text.Font?> +<?import javafx.scene.text.Text?> + + +<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="460.0" prefWidth="747.0" style="-fx-background-color: #F4F7FB;" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="kahootgui.Controller"> + <children> + <AnchorPane layoutX="200.0" prefHeight="68.0" prefWidth="548.0" style="-fx-background-color: #fff;"> + <effect> + <DropShadow color="#0000001f" /> + </effect> + <children> + <ImageView fitHeight="53.0" fitWidth="43.0" layoutX="491.0" layoutY="13.0" pickOnBounds="true" preserveRatio="true" rotate="53.7"> + <image> + <Image url="@images/search.png" /> + </image> + </ImageView> + <TextField focusTraversable="false" layoutX="327.0" layoutY="20.0" prefHeight="29.0" prefWidth="155.0" promptText="Поиск в программе" style="-fx-background-color: #fff; -fx-border-color: #fff;"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </TextField> + <ImageView fitHeight="69.0" fitWidth="60.0" layoutX="24.0" layoutY="5.0" pickOnBounds="true" preserveRatio="true"> + <image> + <Image url="@images/list.png" /> + </image> + </ImageView> + </children> + </AnchorPane> + <AnchorPane prefHeight="460.0" prefWidth="200.0" style="-fx-background-color: #fff;"> + <effect> + <DropShadow color="#00000040" /> + </effect> + <children> + <Button layoutX="14.0" layoutY="130.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по Java"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <ImageView fitHeight="97.0" fitWidth="82.0" layoutX="14.0" layoutY="15.0" pickOnBounds="true" preserveRatio="true"> + <image> + <Image url="@images/logo.png" /> + </image> + </ImageView> + <Text fill="#b2b2b2" layoutX="99.0" layoutY="75.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Программа с тестами" textAlignment="CENTER" wrappingWidth="82.00000447034836"> + <font> + <Font name="Montserrat Bold" size="11.0" /> + </font> + </Text> + <Text fill="#3c3c3c" layoutX="107.0" layoutY="52.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Testify"> + <font> + <Font name="Panton Black Caps" size="17.0" /> + </font> + </Text> + <Separator focusTraversable="false" layoutX="14.0" layoutY="110.0" prefHeight="3.0" prefWidth="175.0" style="-fx-background-color: #ccc; -fx-border-style: solid; -fx-border-color: #333;"> + <opaqueInsets> + <Insets /> + </opaqueInsets> + </Separator> + <Button layoutX="14.0" layoutY="169.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по C#"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="209.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по C++"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="252.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по Python"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="294.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по JS"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Button layoutX="14.0" layoutY="410.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #f7746a; -fx-border-color: #f7746a; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Закрыть программу" textFill="WHITE"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + <Separator focusTraversable="false" layoutX="14.0" layoutY="396.0" prefHeight="3.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-style: solid; -fx-border-color: #ccc; -fx-border-width: 0;"> + <opaqueInsets> + <Insets /> + </opaqueInsets> + </Separator> + </children> + </AnchorPane> + <Text fill="#434343" layoutX="313.0" layoutY="116.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Тесты по языку Java"> + <font> + <Font name="Montserrat Bold" size="29.0" /> + </font> + </Text> + <RadioButton fx:id="radio_btn_1" layoutX="237.0" layoutY="198.0" mnemonicParsing="false" text="Console.Write()" textFill="#5e5e5e"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <toggleGroup> + <ToggleGroup fx:id="answers" /> + </toggleGroup> + </RadioButton> + <Text fx:id="question_text" fill="#727272" layoutX="237.0" layoutY="159.0" strokeType="OUTSIDE" strokeWidth="0.0" text="В каком из вариантов представлен корректный формат вывода информации на экран?" wrappingWidth="494.8199462890625"> + <font> + <Font name="Montserrat Regular" size="14.0" /> + </font> + </Text> + <RadioButton fx:id="radio_btn_2" layoutX="237.0" layoutY="230.0" mnemonicParsing="false" text="System.out.println()" textFill="#5e5e5e" toggleGroup="$answers"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </RadioButton> + <RadioButton fx:id="radio_btn_3" layoutX="237.0" layoutY="263.0" mnemonicParsing="false" text="console.log()" textFill="#5e5e5e" toggleGroup="$answers"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </RadioButton> + <RadioButton fx:id="radio_btn_4" layoutX="237.0" layoutY="299.0" mnemonicParsing="false" text="print()" textFill="#5e5e5e" toggleGroup="$answers"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + </RadioButton> + <Button fx:id="answerBtn" layoutX="387.0" layoutY="384.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #f7746a; -fx-border-color: #f7746a; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Ответить" textFill="WHITE"> + <font> + <Font name="Montserrat Regular" size="13.0" /> + </font> + <cursor> + <Cursor fx:constant="HAND" /> + </cursor> + </Button> + </children> +</AnchorPane> diff --git a/target/classes/kahootgui/styles/main.css b/target/classes/kahootgui/styles/main.css new file mode 100644 index 0000000..90a7c9f --- /dev/null +++ b/target/classes/kahootgui/styles/main.css @@ -0,0 +1,10 @@ +.button:hover { + -fx-background-color: #383838!important; + -fx-border-color: #383838!important; + -fx-text-fill: #fff!important; +} + +.button:pressed { + -fx-scale-y: 0.95; + -fx-scale-x: 0.95; +}
\ No newline at end of file |